This invention relates to collaboration between users, each of whom has a display and an input device for viewing and operating on shared data.
A wide variety of techniques are known for enabling more than one user to access shared data. In some techniques, shared data can only be displayed to one user at a time, while in others, shared data can be displayed to a number of users at the same time.
The display of shared data can take various forms. A common technique is to present the shared data at a legible scale in a display region, such as a window. In order to clear display area, however, it may be useful to provide a smaller representation of the shared data such as an icon when the user is not engaged in activities relating to the shared data.
G. Foster, Collaborative Systems and Multi-user Interfaces, Ph. D. Thesis, University of California, Computer Science Division, Report No. CSD/UCB 86/326, 1986, defines a multi-user interface as a human-machine interface coordinated for several users sharing information at the same time, at page 35. At page 36, Foster discusses the use in multi-user applications of compressed versions of windows in which general activity is discernible but details are suppressed, and suggests this as an approach to the screen space problem. FIG. 4.1 shows a shared window that is seen on the display of each participant in a session using Cognoter, a program that provides a multi-user interface and a structured meeting process. FIG. 4.3 shows how a number of windows may appear during a Cognoter session, with some windows overlapping others. Tables 4.1, 4.2 and 4.3 show a "Scrunch" operation that shrinks a display window. At page 87, Foster discusses busy signals, illustrated in FIG. 4.9, that signal potential conflict between users by greying-out items being edited, moved or grouped by other users.
The ViewPoint ("VP") software system available from Xerox Corporation for its workstations includes file drawers, described in "Filing," VP Series Reference Library, Version 1.0, Xerox Corporation, 1985, pp 1-60. As described at pages 3-7 and 20-21, a file drawer is a container for filing documents created on a workstation; when an icon on the workstation display is moved or copied to a file drawer icon, the corresponding information, referred to as an object, is stored on a file server, and can be shared by many users, in accordance with access rights, illustrated at pages 40-43. A file drawer is represented by a relatively small icon with a design suggesting a drawer and with a name appearing within the design. By a sequence of keyboard and mouse signals, the user can select the icon and request an open operation, in which case a window appears showing the file drawer contents, as described and shown at pages 9-10 and 32-34. Unless covered by a window, the file drawer icon remains visible in shadow form while its window is open. The user can subsequently close the file drawer window, in which case it disappears and the icon resumes its original appearance. The ViewPoint system also includes reference icons, described at pages 11-15, 22-25 and 49-60, which can also be used to access shared data.
Interleaf Technical Publishing Software Reference Manual, Release 3.0 Vol. 1, 1986, pp. 15-1 through 15-18 and 16-1 through 16-19 describes features of Technical Publishing Software (TPS) that can be used similarly to the ViewPoint system's reference icons. Desktop links, described beginning at page 15-12, can be used to share files throughout a network, enabling a user to link to objects on other users' desktops, as further described at pages 15-17 and 15-18. In addition, every desktop has access to objects in the System cabinet through links. Link permissions and ownership are described beginning at page 15-13, and the Document Locked stickup is described beginning at page 15-15. This stickup, shown in FIG. 15-9, includes a message with information about the lock on a document, as would occur if the document were already open, either through a link or at another workstation using the same desktop. The use of links in a book, a special directory that creates a relationship among documents it contains, is described beginning at page 16-18.
Techniques are also known for providing information to users of shared data about the activities of other users. Sarin, S. K. and Greif, I., "Software for Interactive On-Line Conferences," Proceedings ACM-SIGOA Conference on Office Information Systems, Toronto, Canada, June 25-27, 1984, describe a real-time conferencing system, RTCAL, in which a number of conference participants can each see a shared bitmap in a screen region, as shown in FIG. 3-2. Each user has a pointing device such as a mouse, and when a bitmap-server that supports the shared bitmap receives input indicating pointing activity by one of the participants, that participant's cursor is updated on every participant's bitmap, as described in Section 3 at pages 15 and 18.
Sarin, S. K., Interactive On-Line Conferences, PhD thesis, M.I.T. Department of Electrical Engineering and Computer Science, May 1984, also describes RTCAL, at pages 201-206. Elsewhere, at pages 47-57, Sarin describes JEDI, a real-time joint document editing system that includes a status window showing who is in a conference and other useful information about participants, as described at pages 48 and 52 in relation to the shared space shown in FIG. 2-4 and at page 57 in relation to a participant leaving a conference. Sarin discusses status information more generally at pages 75-78, pointing out ways in which a participant can know what other participants are doing and looking at. On page 78, Sarin points out that not all status information may fit on a participant's screen at once, and suggests allocating a small amount of screen space to a main summary, with more detailed information available when needed by a "pop-up" viewport; Sarin also suggests special notification of significant changes in conference status, accompanied by an attention-getting mechanism such as a bell ringing or flashing part of the screen where the notification appears. Pages 206-213 describe MBlink, in which each user can see the positions of each workstation's mouse. Pages 214-227 describe XMBlink, a design that extends this feature. Sarin, S. K. and Greif, I., "Computer-Based Real-Time Conferencing Systems" Computer, October 1985, pp. 33-45, describe at page 34 a number of other systems providing information about activities of other users. FIG. 1 shows a summary window that provides further information about other participants in a conference and an events window that displays important changes in status, such as when a participant is leaving or joining or the passing of control, as described at page 36.
Greif, I., Seliger, R. and Weihl, W., "Atomic Data Abstractions in a Distributed Collaborative Editing System," Proceedings of the ACM Symposium on Principles of Programming Languages, St. Petersburg, Florida, January 1986, pp. 160-172, describe a distributed collaborative editing system called "CES." The functionality and design of CES are described at pages 164-165, including the sharing of documents among multiple authors. While a "tickle" lock is held, small actions made by the owner are committed after certain editing commands and remain visible when the lock is released. Screen of all readers of text that is being modified are updated at regular intervals as each small action commits.
Foster, G., CoLab, Tools for Computer-Based Cooperation, University of California, Computer Science Division, Berkeley, California, Report No. UCB/CSD 84/215, 1984, describes the use of RemoteMice, personalized images of mouse cursors active on remote machines, at page 13. The relaxation of WYSIWIS ("What You See Is What I See"), discussed at page 8, permits differences between the views of a display object seen by different users, which could be implemented by associating windows of different sizes or screen positions or by providing visible remote cursors only on demand.
Stefik, M., Bobrow, D. G., Mittal, S. and Conway, L., "Knowledge Programming in Loops: Report on an Experimental Course," The AI Magazine, Fall 1983, pp. 3-13, describe Truckin', a workstation board game in which each player has an iconic truck, as shown and described in relation to FIG. 5. Each player can have a separate workstation. Gauges described at pages 6-9 indicate the fuel, weight, and volume of each player's truck, and that can be observed by other players. Stefic, M. J., Bobrow, D. G. and Kahn, K. M., "Integrating Access-Oriented Programming into a Multiparadigm Environment," IEEE Software, January 1986, pp 10-18 also describe gauges at pages 14-15 and Truckin' at pages 16-17.
Davids et al., U.S. Pat. No. US-A 4,525,779, describe a conversational video system capable of providing interactive conversational video data communications between pairs of users and that enables multiple conversations to be carried out by a given user in real-time, as shown and described in relation to FIGS. 1-2. The display at a keystation can be divided into a plurality of areas that can include first and second conversation areas or a first conversation area and an area for retrieved data, as shown and described in relation to FIG. 11 and FIGS. 10A-10F. Another feature is an incoming calls area of the display containing brief details of incoming calls and their interest messages, and the user may accept one of the incoming calls shown in order to have it displayed in one of the conversation areas. A user can list others from whom he is not prepared to accept calls using a CALL INHIBIT function or can specify a list of others to whom a call is directed using a CALL LIST function, as shown and described in relation to FIGS. 14-43.
Leblang, D. B. and Chase, R. P., Jr., "Computer-Aided Software Engineering in a Distributed Workstation Environment," in Henderson, P., (Ed.), Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, Pittsburgh, Penn., April 23-24, 1984, describe DSEE, a software development environment. As described and shown in the fifth and sixth pages, each of a group of users sees the items completed by other users immediately, as a reference to the completed item.